A networked storage system may include a number of storage servers, which may be implemented in the form of storage appliances. A storage server may provide file services related to the organization of data on storage devices, such as disks. Such a storage server is commonly referred to as a file server or a filer. An example of such a storage server is any of the filer products made by Network Appliance, Inc. in Sunnyvale, Calif. The storage server may be implemented with a special-purpose computer or a general-purpose computer. The storage server is typically coupled to a number of storage devices, such as disks, to store or to retrieve data on the storage devices.
In a conventional system, the storage server directly manages the storage devices. For example, the storage server is responsible for scheduling operations on the storage devices, laying out data on the storage devices, and collecting storage device Input/Output (I/O) operations. Each of the storage devices is treated as a single unit, and thus, the storage server maps or allocates an entire storage device as a single logical unit.
However, the conventional way to manage storage devices is unsatisfactory for at least a number of reasons. First, the I/O requests may be concentrated on a particular storage device, which is commonly referred to as a “hot disk” if the storage device is a disk. The disproportionate number of I/O requests may overburden the hot disk while leaving other storage devices underused. However, the existing storage server does not take advantage of the I/O processors (IOPS) on other storage devices besides the hot disk. Furthermore, since each entire storage device is a single logical unit, I/O operations to access the data of the logical unit are not directed to multiple storage devices. Thus, I/O operations are not directed to storage devices that are lightly used. Moreover, when a portion of a storage device fails, the entire storage device becomes unusable because the storage server does not partition the failed portion from the rest of the storage device.
In a particular system, the storage devices may be arranged into Redundant Array of Independent Disks (RAID) groups or volumes. Each RAID group includes a predetermined number of storage devices. As the size of each storage device grows, the size of the RAID group increases as well, even though the RAID group may not require more storage space. Consequently, some of the storage space in the storage devices in the RAID group is wasted because the existing storage server does not partition a storage device to assign the extra space for other uses.